vlwkaos' digital garden

JavaScript - this

Javascript를 사용하면서 뭔가 특이한 점이 있다면 바로 this가 아닐까 생각한다.

Javscript에서 this는 함수가 실행될 때 결정된다. 함수가 실행되는 context에 따라 this의 참조가 바뀐다.

  • 모든 함수 밖에서 사용하는 경우 thisglobalThis를 참조한다.

  • 함수 안에서 사용하는 경우

    • strict mode가 아닐 때: 전역 오브젝트로 참조된다.
    • strict mode일때: 직접 set하지 않는 이상 undefined로 남는다.
  • 클래스 안에서 사용하는 경우 클래스도 곧 함수이기 때문에 this의 동작이 비슷하긴 하나 몇가지 차이점이 있다.

    • 클래스 내부의 non-static 메소드는 this의 prototype에 추가된다.
  • 하위 클래스에서 사용하는 경우 super()를 호출하기 전까지 this는 binding되어있지 않다.

  • this

JavaScript - this